home *** CD-ROM | disk | FTP | other *** search
-
- procedure quantize(var tdi,tdo:track_data_block;
- quantum:integer);
- var
- in_time : real; { Actual elapsed time, }
- { input track data block }
- out_time : real; { Actual elapsed time, }
- { output track data block }
- etime : integer; { Temporary storage for }
- { adjustment of event time }
- qround : integer; { Rounding term }
- begin
- reset_track_data(tdi);
- reset_track_data(tdo);
- qround:=quantum div 2;
- in_time:=0.0;
- out_time:=0.0;
- while not(tdi.edat) do
- begin
- next_track_event(tdi);
- with tdi.curr do
- begin
- etime:=event.time;
- { Adjust in/out time variance }
- etime:=etime - trunc(out_time-in_time);
- { quantize }
- etime:=trunc(quantum * ((etime + qround) div quantum));
- in_time:=in_time+event.time;
- out_time:=out_time+etime;
- event.time:=etime;
- while event.time > MAX_TIMING_COUNT do
- begin
- store_track_event(tdo,OVFL_EVENT);
- event.time:=event.time-MAX_TIMING_COUNT;
- end;
- store_track_event(tdo,tdi.curr);
- end;
- end;
- end;
-
- ;
- event.time:=event.time-MAX_TIMING_COU